package com.gengzp.common.model.user.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gengzp.common.enums.GenderEnum;
import com.gengzp.common.document.annotations.ApiModel;
import com.gengzp.common.document.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName EditSysUserReq
 * @Description 编辑系统用户请求实体
 * @Author gengzp
 * @Date 2025/5/18 22:12
 */
@Data
@ApiModel(description = "编辑系统用户请求实体")
public class EditSysUserReq implements Serializable {

    @Serial
    private static final long serialVersionUID = 513175008451032072L;

    /**
     * 用户id
     */
    @NotBlank(message = "用户id不能为空")
    @ApiModelProperty(value = "用户id", required = true)
    private String userId;

    /**
     * 用户昵称
     */
    @NotBlank(message = "用户昵称不能为空")
    @ApiModelProperty(value = "用户昵称", required = true)
    private String userNickname;

    /**
     * 用户性别
     */
    @NotNull(message = "用户性别不能为空")
    @ApiModelProperty(value = "用户性别", required = true, enumClass = GenderEnum.class)
    private Integer userGender;

    /**
     * 用户出生日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ApiModelProperty(value = "用户出生日期, 格式: yyyy-MM-dd")
    private Date userBirthDate;

    /**
     * 用户所在地区, 可具体到省,市等, 方便进行基于地域的业务分析或服务提供
     */
    @ApiModelProperty(value = "用户所在地区, 可具体到省,市等, 方便进行基于地域的业务分析或服务提供")
    private String userAddress;

    /**
     * 用户个人介绍
     */
    @ApiModelProperty(value = "用户个人介绍")
    private String userIntroduction;

}
